package com.mapaoer.user.service;

import com.mapaoer.user.entity.SkillTag;

import java.util.List;

/**
 * 技能标签服务接口
 * 定义技能标签相关的业务操作方法
 */
public interface SkillTagService {

    /**
     * 创建技能标签
     * @param name 技能名称
     * @param category 技能类别
     * @param color 技能颜色
     * @param isHot 是否热门
     * @return 创建的技能标签
     */
    SkillTag createSkillTag(String name, String category, String color, Boolean isHot);

    /**
     * 根据ID获取技能标签
     * @param id 技能标签ID
     * @return 技能标签
     */
    SkillTag getSkillTagById(Long id);

    /**
     * 根据名称获取技能标签
     * @param name 技能名称
     * @return 技能标签
     */
    SkillTag getSkillTagByName(String name);

    /**
     * 根据类别获取技能标签列表
     * @param category 技能类别
     * @return 技能标签列表
     */
    List<SkillTag> getSkillTagsByCategory(String category);

    /**
     * 获取所有技能标签
     * @return 技能标签列表
     */
    List<SkillTag> getAllSkillTags();

    /**
     * 获取热门技能标签
     * @return 热门技能标签列表
     */
    List<SkillTag> getHotSkillTags();

    /**
     * 更新技能标签
     * @param id 技能标签ID
     * @param name 技能名称
     * @param category 技能类别
     * @param color 技能颜色
     * @param isHot 是否热门
     * @return 更新后的技能标签
     */
    SkillTag updateSkillTag(Long id, String name, String category, String color, Boolean isHot);

    /**
     * 删除技能标签
     * @param id 技能标签ID
     * @return 删除结果
     */
    boolean deleteSkillTag(Long id);
}